package com.fowo.api.model.amazon.order.list.detail;

import com.alibaba.excel.annotation.ExcelProperty;
import com.fowo.api.common.validator.*;
import javax.validation.constraints.*;
import lombok.Data;

/**
 * 亚马逊订单详情 预览导入辅助模型(全字段为文本类型)
 * @author yl_ls
 */
@Data
public class AmazonOrderListDetailImportPo {

  /** 亚马逊订单号 */
  @ExcelProperty("亚马逊订单号")
  @Size(max = 50, message = "亚马逊订单号长度不能超过50")
  private String amazonOrderId;

  /** 买家姓名 */
  @ExcelProperty("买家姓名")
  @Size(max = 50, message = "买家姓名长度不能超过50")
  private String buyerName;

  /** 买家邮件 */
  @ExcelProperty("买家邮件")
  @Size(max = 50, message = "买家邮件长度不能超过50")
  private String buyerEmail;

  /** 用户收货地址 */
  @ExcelProperty("用户收货地址")
  @Size(max = 500, message = "用户收货地址长度不能超过500")
  private String address;

  /** 省州简码 */
  @ExcelProperty("省州简码")
  @Size(max = 50, message = "省州简码长度不能超过50")
  private String stateOrRegion;

  /** 发货渠道 */
  @ExcelProperty("发货渠道")
  @Size(max = 20, message = "发货渠道长度不能超过20")
  private String fulfillmentChannel;

  /** 店铺编码 */
  @ExcelProperty("店铺编码")
  @Size(max = 50, message = "店铺编码长度不能超过50")
  private String shopCode;

  /** 店铺id */
  @ExcelProperty("店铺id")
  @LongString(message = "店铺id数值格式不正确", label = "店铺id")
  private String shopId;

  /** 国家 */
  @ExcelProperty("国家")
  @Size(max = 50, message = "国家长度不能超过50")
  private String country;

  /** 城市 */
  @ExcelProperty("城市")
  @Size(max = 50, message = "城市长度不能超过50")
  private String city;

  /** 地区 */
  @ExcelProperty("地区")
  @Size(max = 50, message = "地区长度不能超过50")
  private String district;

  /** 状态 */
  @ExcelProperty("状态")
  @Size(max = 20, message = "状态长度不能超过20")
  private String orderStatus;

  /** 是否评测订单 */
  @ExcelProperty("是否评测订单")
  @LongString(message = "是否评测订单数值格式不正确", label = "是否评测订单")
  private String isAssessed;

  /** 订单总金额 */
  @ExcelProperty("订单总金额")
  @Size(max = 50, message = "订单总金额长度不能超过50")
  private String orderTotalAmount;

  /** 订单金额币种 */
  @ExcelProperty("订单金额币种")
  @Size(max = 50, message = "订单金额币种长度不能超过50")
  private String currency;

  /** 订单金额币种符号 */
  @ExcelProperty("订单金额币种符号")
  @Size(max = 50, message = "订单金额币种符号长度不能超过50")
  private String icon;

  /** 邮编 */
  @ExcelProperty("邮编")
  @Size(max = 50, message = "邮编长度不能超过50")
  private String postalCode;

  /** 是否多渠道订单 */
  @ExcelProperty("是否多渠道订单")
  @Size(max = 20, message = "是否多渠道订单长度不能超过20")
  private String isMcfOrder;

  /** 是否退货订单 */
  @ExcelProperty("是否退货订单")
  @Size(max = 20, message = "是否退货订单长度不能超过20")
  private String isReturnOrder;

  /** 是否已换货 */
  @ExcelProperty("是否已换货")
  @Size(max = 20, message = "是否已换货长度不能超过20")
  private String isReplacedOrder;

  /** 是否换货订单 */
  @ExcelProperty("是否换货订单")
  @Size(max = 20, message = "是否换货订单长度不能超过20")
  private String isReplacementOrder;

  /** 国家代码 */
  @ExcelProperty("国家代码")
  @Size(max = 50, message = "国家代码长度不能超过50")
  private String countryCode;

  /** 订购时间 */
  @ExcelProperty("订购时间")
  @Size(max = 50, message = "订购时间长度不能超过50")
  private String purchaseDateLocal;

  /** 下单时间（UTC） */
  @ExcelProperty("下单时间（UTC）")
  @Size(max = 50, message = "下单时间（UTC）长度不能超过50")
  private String purchaseDateLocalUtc;

  /** 订单更新站点时间 */
  @ExcelProperty("订单更新站点时间")
  @Size(max = 50, message = "订单更新站点时间长度不能超过50")
  private String lastUpdateDate;

  /** 订单更新站点时间（UTC） */
  @ExcelProperty("订单更新站点时间（UTC）")
  @Size(max = 50, message = "订单更新站点时间（UTC）长度不能超过50")
  private String lastUpdateDateUtc;

  /** 发货时限 */
  @ExcelProperty("发货时限")
  @Size(max = 50, message = "发货时限长度不能超过50")
  private String earliestShipDate;

  /** 发货时限（UTC） */
  @ExcelProperty("发货时限（UTC）")
  @Size(max = 50, message = "发货时限（UTC）长度不能超过50")
  private String earliestShipDateUtc;

  /** 地址1 */
  @ExcelProperty("地址1")
  @Size(max = 50, message = "地址1长度不能超过50")
  private String addressLine1;

  /** 地址2 */
  @ExcelProperty("地址2")
  @Size(max = 50, message = "地址2长度不能超过50")
  private String address2;

  /** 地址3 */
  @ExcelProperty("地址3")
  @Size(max = 50, message = "地址3长度不能超过50")
  private String address3;

  /** 电话 */
  @ExcelProperty("电话")
  @Size(max = 50, message = "电话长度不能超过50")
  private String phone;

  /** 用户收货名 */
  @ExcelProperty("用户收货名")
  @Size(max = 50, message = "用户收货名长度不能超过50")
  private String name;

  /** 是否为B2B订单 */
  @ExcelProperty("是否为B2B订单")
  @Size(max = 20, message = "是否为B2B订单长度不能超过20")
  private String isBusinessOrder;

  /** 是否含税 */
  @ExcelProperty("是否含税")
  @EnumsString(
    value = { "含税", "不含税" },
    message = "是否含税只能是“含税”, “不含税”中的一个"
  )
  private String taxesIncluded;

  /** 发货地址 */
  @ExcelProperty("发货地址")
  @Size(max = 50, message = "发货地址长度不能超过50")
  private String shippingAddress;

  /** 配送服务 */
  @ExcelProperty("配送服务")
  @Size(max = 50, message = "配送服务长度不能超过50")
  private String shipServiceLevel;

  /** 装运服务级别 */
  @ExcelProperty("装运服务级别")
  @Size(max = 50, message = "装运服务级别长度不能超过50")
  private String shipmentServiceLevelCategory;

  /** 采购订单编号（买家结账时输入） */
  @ExcelProperty("采购订单编号（买家结账时输入）")
  @Size(max = 50, message = "采购订单编号（买家结账时输入）长度不能超过50")
  private String purchaseOrderCode;

  /** 采购订单id */
  @ExcelProperty("采购订单id")
  @LongString(message = "采购订单id数值格式不正确", label = "采购订单id")
  private String purchaseOrderId;

  /** 付款方式 COD (Cash on delivery) */
  @ExcelProperty("付款方式 COD (Cash on delivery)")
  @Size(max = 50, message = "付款方式 COD (Cash on delivery)长度不能超过50")
  private String paymentMethod;

  /** 亚马逊结账（CBA）的自定义发货标签 */
  @ExcelProperty("亚马逊结账（CBA）的自定义发货标签")
  @Size(max = 50, message = "亚马逊结账（CBA）的自定义发货标签长度不能超过50")
  private String cbaDisplayAbleShippingLabel;

  /** 订单类型 */
  @ExcelProperty("订单类型")
  @Size(max = 50, message = "订单类型长度不能超过50")
  private String orderType;

  /** 最晚发货时间（承诺配送订单的最晚发货时间） */
  @ExcelProperty("最晚发货时间（承诺配送订单的最晚发货时间）")
  @Size(
    max = 50,
    message = "最晚发货时间（承诺配送订单的最晚发货时间）长度不能超过50"
  )
  private String latestShipDate;

  /** 最早送达时间（承诺送达订单的最早送达时间） */
  @ExcelProperty("最早送达时间（承诺送达订单的最早送达时间）")
  @Size(
    max = 50,
    message = "最早送达时间（承诺送达订单的最早送达时间）长度不能超过50"
  )
  private String earliestDeliveryDate;

  /** 最晚送达时间（承诺送达订单的最晚送达时间） */
  @ExcelProperty("最晚送达时间（承诺送达订单的最晚送达时间）")
  @Size(
    max = 50,
    message = "最晚送达时间（承诺送达订单的最晚送达时间）长度不能超过50"
  )
  private String latestDeliveryDate;

  /** 已发货的商品数 */
  @ExcelProperty("已发货的商品数")
  @Size(max = 50, message = "已发货的商品数长度不能超过50")
  private String numberOfItemsShipped;

  /** 未发货的商品数 */
  @ExcelProperty("未发货的商品数")
  @Size(max = 50, message = "未发货的商品数长度不能超过50")
  private String numberOfItemsUnShipped;

  /** 销售渠道 */
  @ExcelProperty("销售渠道")
  @Size(max = 50, message = "销售渠道长度不能超过50")
  private String salesChannel;

  /** 是否推广 */
  @ExcelProperty("是否推广")
  @EnumsString(
    value = { "推广", "未推广" },
    message = "是否推广只能是“推广”, “未推广”中的一个"
  )
  private String isPromotion;
}
